home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / WWPaketkarteNN+Z.outrexx < prev    next >
Text File  |  1998-10-29  |  6KB  |  213 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der Nachnahme Paketkarte + Zahlschein zur Rechnung mit Hilfe von Wordworth
  3. ** $VER: WWPaketkarteNN+Z.outrexx V1.02 (30.10.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. WWVorlage    = "WWDokumente/PaketkarteNN+Z.ww";
  12. WWDokument    = "t:PaketkarteNN+Z.ww";
  13. WWPort        = "WORDWORTH."
  14.  
  15. LF                    = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (WWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             WWPort = WWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. WWVorlage        = MTR_RESULT || WWVorlage;
  39. ADDRESS COMMAND "copy" WWVorlage WWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. /* Neues Dokument öffnen */
  55. ADDRESS VALUE WWPort;
  56. NEW;
  57. WWPort = RESULT;
  58.  
  59. ADDRESS VALUE ARexxPort;
  60.  
  61. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  62.     CALL DatenAufbereiten;
  63.     SELECT;
  64.         WHEN Druckart = 0 THEN    /* Drucken    */
  65.             DO;
  66.                 ADDRESS VALUE WWPort;
  67.                 PRINT;
  68.                 ADDRESS VALUE ARexxPort;
  69.                 MTSCREENTOFRONT;
  70.             END;
  71.         WHEN Druckart = 1 THEN    /* Vorschau    */
  72.             ADDRESS VALUE ARexxPort;
  73.         WHEN Druckart = 2 THEN    /* Sichern    */
  74.             DO;
  75.                 ADDRESS VALUE WWPort;
  76.                 SAVEAS;
  77.                 ADDRESS VALUE ARexxPort;
  78.                 MTSCREENTOFRONT;
  79.             END;
  80.         OTHERWISE
  81.             DO;
  82.                 ADDRESS VALUE ARexxPort;
  83.                 ES_TITLE                = "Warnung";
  84.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  85.                 ES_GADGETFORMAT    = "Ok";
  86.                 EASY_REQUEST;
  87.                 Ende_Kennzeichen    = 'J';
  88.             END;
  89.     END;
  90.  
  91.     PRINTFIND;
  92. END;
  93.  
  94. /* WordWorth-Datei aus t: wieder entfernen */
  95. ADDRESS COMMAND "delete" WWDokument;
  96.  
  97. /* Oberfläche wieder entsperren */
  98. ADDRESS VALUE ARexxPort;
  99. FREEGUI;
  100.  
  101. EXIT;
  102.  
  103. DatenAufbereiten:
  104.  
  105.     IF PREFS.NUMBER_DIGITS > 0 THEN
  106.         ZW_Rechnung = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS );
  107.     ELSE
  108.         ZW_Rechnung = MTR_RESULT;
  109.  
  110.     NAME_OF_SALUTATION OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION;
  111.     ZW_Anrede    = MTR_RESULT;
  112.  
  113.     /* Betrag korrekt formatieren, Währungssymbol separieren */
  114.     i = OB.CURRENCY_USED;
  115.     FORMAT_MONEY2 OB.TOTAL_ADD_M_ALL_CH.i;
  116.     j = index( MTR_RESULT, PREFS.CURRENCYSYMBOL );
  117.     l1 = j - 1;
  118.     l2 = LENGTH( MTR_RESULT ) - l1 - LENGTH( PREFS.CURRENCYSYMBOL );
  119.     IF i < 2 THEN
  120.         FORMAT_MONEY1 OB.TOTAL_ADD_M_ALL_CH.i;
  121.     ZW_Betrag    = LEFT(MTR_RESULT, l1) || RIGHT(MTR_RESULT, l2);
  122.     ZW_WSymbol    = SUBSTR(MTR_RESULT, j, (LENGTH( MTR_RESULT ) - l1 - l2) );
  123.  
  124.     /* Betrag korrekt formatieren (Zahlschein)*/
  125.     FORMAT_MONEY2 OB.TOTAL_M_ALL_CH.i;
  126.     j = index( MTR_RESULT, PREFS.CURRENCYSYMBOL );
  127.     l1 = j - 1;
  128.     l2 = LENGTH( MTR_RESULT ) - l1 - LENGTH( PREFS.CURRENCYSYMBOL );
  129.     IF i < 2 THEN
  130.         FORMAT_MONEY1 OB.TOTAL_M_ALL_CH.i;
  131.     ZW_BetragZS    = LEFT(MTR_RESULT, l1) || RIGHT(MTR_RESULT, l2);
  132.  
  133.     IF PREFS.CLIENT_CODE = 1 THEN
  134.         ZW_Kunde = OB.INVOICEE.CUSTOMER.CLIENT_CODE;
  135.     ELSE IF PREFS.NUMBER_DIGITS > 0 THEN
  136.         ZW_Kunde = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
  137.     ELSE
  138.         ZW_Kunde = OB.INVOICEE_NUMBER;
  139.  
  140.  
  141.     ADDRESS VALUE WWPort;
  142.  
  143.     OPEN FILENAME WWDokument FORCE;
  144.  
  145.     POSITION SOF;
  146.     IF OB.OFFICE.ADDRESS.COMPANY1 > "" THEN
  147.         ZW_Adresse = OB.OFFICE.ADDRESS.COMPANY1;
  148.     ELSE
  149.         ZW_Adresse = OB.OFFICE.ADDRESS.PRENAME OB.OFFICE.ADDRESS.SURNAME;
  150.     FINDCHANGE FIND "<SENDER.SUR_PRENAME>" CHANGE ZW_Adresse;
  151.     FINDCHANGE FIND "<SENDER.SUR_PRENAME>" CHANGE ZW_Adresse;
  152.  
  153.     POSITION SOF;
  154.     FINDCHANGE FIND "<SENDER.STREET>" CHANGE OB.OFFICE.ADDRESS.STREET;
  155.  
  156.     POSITION SOF;
  157.     FINDCHANGE FIND "<SENDER.ZIP>" CHANGE OB.OFFICE.ADDRESS.ZIP;
  158.  
  159.     POSITION SOF;
  160.     FINDCHANGE FIND "<SENDER.CITY>" CHANGE OB.OFFICE.ADDRESS.CITY;
  161.  
  162.     POSITION SOF;
  163.     FINDCHANGE FIND "<OB.TOTAL>" CHANGE ZW_Betrag;
  164.  
  165.     POSITION SOF;
  166.     FINDCHANGE FIND "<SENDER.ACCOUNT>" CHANGE OB.OFFICE.ADDRESS.ACCOUNT;
  167.     FINDCHANGE FIND "<SENDER.ACCOUNT>" CHANGE OB.OFFICE.ADDRESS.ACCOUNT;
  168.  
  169.     POSITION SOF;
  170.     FINDCHANGE FIND "<RECEIVER.SALUTATION>" CHANGE ZW_Anrede;
  171.  
  172.     POSITION SOF;
  173.     FINDCHANGE FIND "<SENDER.BANK_SHORT>" CHANGE OB.OFFICE.ADDRESS.BANK_SHORT;
  174.  
  175.     POSITION SOF;
  176.     IF OB.INVOICEE.CUSTOMER.ADDRESS.COMPANY1 > "" THEN
  177.         ZW_Adresse = OB.INVOICEE.CUSTOMER.ADDRESS.COMPANY1;
  178.     ELSE
  179.         ZW_Adresse = OB.INVOICEE.CUSTOMER.ADDRESS.PRENAME OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME;
  180.     FINDCHANGE FIND "<RECEIVER.SUR_PRENAME>" CHANGE ZW_Adresse;
  181.     FINDCHANGE FIND "<RECEIVER.SUR_PRENAME>" CHANGE LEFT((ZW_Adresse || ", " || OB.INVOICEE.CUSTOMER.ADDRESS.CITY), 27);;
  182.  
  183.     POSITION SOF;
  184.     FINDCHANGE FIND "<S.BANK_C_NR>" CHANGE OB.OFFICE.ADDRESS.BANK_CODE_NUMBER;
  185.     FINDCHANGE FIND "<S.BCM>" CHANGE OB.OFFICE.ADDRESS.BANK_CODE_NUMBER;
  186.  
  187.     POSITION SOF;
  188.     FINDCHANGE FIND "<RECEIVER.STREET>" CHANGE OB.INVOICEE.CUSTOMER.ADDRESS.STREET;
  189.  
  190.     POSITION SOF;
  191.     FINDCHANGE FIND "<R.ZIP>" CHANGE OB.INVOICEE.CUSTOMER.ADDRESS.ZIP;
  192.  
  193.     POSITION SOF;
  194.     FINDCHANGE FIND "<RECEIVER.CITY>" CHANGE OB.INVOICEE.CUSTOMER.ADDRESS.CITY;
  195.  
  196.     POSITION SOF;
  197.     FINDCHANGE FIND "<SENDER.BANK_NAME>" CHANGE LEFT(OB.OFFICE.ADDRESS.BANK_NAME,27);
  198.  
  199.     POSITION SOF;
  200.     FINDCHANGE FIND "<B.TOTAL>" CHANGE ZW_BetragZS;
  201.     FINDCHANGE FIND "<B.TOTAL>" CHANGE ZW_BetragZS;
  202.  
  203.     POSITION SOF;
  204.     FINDCHANGE FIND "<W>" CHANGE ZW_WSymbol;
  205.  
  206.     POSITION SOF;
  207.     FINDCHANGE FIND "<B.BILL_NUMBER>" CHANGE ZW_Rechnung;
  208.  
  209.     POSITION SOF;
  210.     FINDCHANGE FIND "<SEND.NUMBER>" CHANGE ZW_Kunde;
  211. RETURN;
  212.  
  213.